﻿using Bentley.CifNET.LinearGeometry;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Checc.Culvert.LayingLine;

public class CulvertPointInfo
{
    public CulvertPointInfo(DPoint3d pointOnLayLine, DVector3d vectorByLayLine, bool isEntrance, bool isLeft, double slope, double normalSlope,double fillHeight)
    {
        this.PointOnLayLine = pointOnLayLine;
        this.VectorByLayLine = vectorByLayLine;
        this.IsEntrance = isEntrance;
        this.IsLeft = isLeft;
        this.Slope = slope;
        this.NormalSlope = normalSlope;
        this.FillHeight = fillHeight;   
    }

    /// <summary>
    /// 是否是进口
    /// </summary>
    public bool IsEntrance { get; }

    /// <summary>
    /// 是否是左侧
    /// </summary>
    public bool IsLeft { get; }

    /// <summary>
    /// 边坡正坡度
    /// </summary>
    public double NormalSlope { get; }

    /// <summary>
    /// 路基边缘填土高度
    /// </summary>
    public double FillHeight { get; }

    /// <summary>
    /// 涵洞布置线与边坡交点在涵洞布置线上投影点
    /// </summary>
    public DPoint3d PointOnLayLine { get; }

    /// <summary>
    /// 边坡斜坡度
    /// </summary>
    public double Slope { get; }

    /// <summary>
    /// 涵洞布置线与路基边缘交点向量,已转成与主线同向
    /// </summary>
    public DVector3d VectorByLayLine { get; }
}